home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / u386mon-2.74 / README < prev    next >
Text File  |  1995-07-13  |  26KB  |  583 lines

  1. u386mon 2.70 README - Thu Aug 26 04:41:50 EDT 1993
  2. ==================================================
  3.  
  4. This is u386mon 2.70, a "performance" monitor, ostensibly for SCO
  5. UNIX V/386 and ISC 386/ix on 386/486 processors, although it has
  6. been ported to a 68k VME System V Release 3.1 platform and to ISC
  7. 1.0.x and to the Tandem Integrity S2 (both S5R3.0-ish).  Also, a
  8. renice is included as an example of alternate uses of the
  9. kmem/mem/swap utility objects.
  10.  
  11. This list is probably obsolete by now (I've heard no news from
  12. you guys), but u386mon has been known to work on:
  13.  
  14.     Motorola Delta 88k SVR3e 3.1 (good luck)
  15.     DELL System V (ISC derived)
  16.     ISC 1.x
  17.     ISC 2.x
  18.     Tandem Integrity S2 Non-Stop UX
  19.     Various System 5 Release 3.1 (good luck)
  20.     SCO UNIX 3.2, 3.2.1, 3.2r2, ODT 1.x
  21.  
  22. U386mon previous to 2.60 was tested on SCO 3.2.0, 3.2.1, 3.2v2
  23. and ODT and ISC 1.0.x, 2.0.x and 2.2.x, Tandem Integrity S2
  24. NonStop-UX and at least one MC68000 VME-based Sys V Rel 3.1
  25. system.  Version 2.70 has been tested only on ODT 2.0 (3.2v4)
  26. and Motorola Delta 88k SVR32, but problems with the other
  27. environments are not anticipated :->.
  28.  
  29. These may work with other UNIX System 5 Release 3.x systems with
  30. a little work.  XENIX systems have greatly different kernel
  31. implementations and use xlist instead of nlist.  These programs
  32. will not work there; sorry. 
  33.  
  34. U386mon requires terminfo style curses and will use the curses
  35. color facility if you have it.  In addition, color choice may be
  36. customized.  It works best with a 43 line (or greater) screen,
  37. but will work with a 25 line screen with some limitations.  It
  38. works very well on SCO ODT, Metro Link X11R4 and ISC xterms.  On
  39. a Wyse 60, the SCO color curses does some interesting attribute
  40. mappings.
  41.  
  42. On a 20Mhz Compaq 386 running SCO UNIX 3.2.0, u386mon on a 43-line VGA,
  43. with a two second update interval, appears to consume 3 to 5% of the CPU
  44. when in the "main" display and about 7 to 11% when displaying process
  45. status (NPROC, v.v_proc == 100).  This is a bit expensive, but the job
  46. is sorta hard: according to prof(1)/prof(CP), 50% of the time is spent
  47. in curses.  Of course, on the Tandem Integrity S2 (a MIPS based
  48. machine), these figures were MUCH, MUCH lower :-).  On a 486 33 MHz
  49. machine, I get very much lower figures as well.  In fact, the guy was so
  50. fast we found a divide by zero possibility where u386mon could run a
  51. whole cycle without ticking the clocks, getting zero total cpu ticks
  52. over the cycle.
  53.  
  54. Acknowledgments
  55. ===============
  56.  
  57. Thanks to martin@hppcmart.grenoble.hp.com (Martin Croome), who
  58. gets complete credit for the nice STREAMS, table and
  59. winchester statistics.  Neils Baggesen ported/tested them on
  60. S5R3.1.
  61.  
  62. Thanks to peter@radig.de (Peter Radig), dug@kd4nc (Doug Drye),
  63. jdc@uudell.dell.com (Jeremy Chatfield), andy@rbdc (Andy Pitts),
  64. trb@ima.ima.isc.com (Andrew Tannenbaum) for the help with ISC 386/ix.
  65.  
  66. Thanks to nba@sysware.dk (Neils Baggesen) and allbery@ncoast.org
  67. (Brandon Allbery) for the System V Release 3.1 work.
  68.  
  69. Thanks to jmd@tdmsou.uucp (John Dashner) for the Tandem S2 work.
  70.  
  71. Thanks to Dion Johnson <dionj@sco.com>, Bob Lewis (robertle@sco.com),
  72. Bob Tinsman <bobti@sco.com> and David Gurr <davidgu@sco.com> for
  73. encouragement to keep work going.
  74.  
  75. If I missed mentioning some work you did, please accept my apology and
  76. remind me.
  77.  
  78. Yellow Brick Road
  79. =================
  80.  
  81. Read through this and you will finally reach "How to get going" below.
  82.  
  83. Sample output (somewhat obsolete)
  84. =================================
  85. (with 43-line screen; a 25 line screen will be missing Var/Bootinfo/Tune/Proc
  86. on the 'main' display)
  87.  
  88.  u386mon 2.11/SCO 3.2 - n4hgf                                 04:39:36 wht@n4hgf
  89. ---- CPU --- tot usr ker brk ---------------------------------------------------
  90.  Instant %    93  54  39   0 uuuuuuuuuuuuuuuuuuuuuuuuuuukkkkkkkkkkkkkkkkkkk     
  91.  5 Sec Avg %  87  26  61   0 uuuuuuuuuuuuukkkkkkkkkkkkkkkkkkkkkkkkkkkkkk        
  92. 10 Sec Avg %  89  45  44   0 uuuuuuuuuuuuuuuuuuuuuukkkkkkkkkkkkkkkkkkkkkk       
  93. ---- Wait -- tot  io pio swp -- (% of real time) -------------------------------
  94.  Instant %     5   5   0   0 ii                                                 
  95.  5 Sec Avg %  12  12   0   0 iiiiii                                             
  96. 10 Sec Avg %   9   9   0   0 iiii                                               
  97. ---- Sysinfo/Minfo --- (last  1000 msec activity) ------------------------------
  98. bread          5  readch    60416  pswitch    21   vfault    1    unmodsw   0   
  99. bwrite         9  writch     2507  syscall   261   demand    1    unmodfl   0   
  100. lread        331  rawch         2  sysread   100   pfault   15    psoutok   0   
  101. lwrite        42  canch         0  syswrit     4   cw        0    psinfai   0   
  102. phread         0  outch      2508  sysfork     1   steal    15    psinok    0   
  103. phwrite        0  msg           0  sysexec     0   frdpgs    0    rsout     0   
  104. swapin         0  sema          0                  vfpg      0    rsin      0   
  105. swapout        0  maxmem    5724k  runque      0   sfpg      0                  
  106. bswapin        0  frmem     3284k  runocc      0   vspg      0    pages on      
  107. bswapout       0  mem used    43%  swpque      0   sspg      0    swap      0   
  108. iget          72  nswap    10000k  swpocc      0   pnpfault  0    cache     0   
  109. namei         71  frswp    10000k                  wrtfault  0    file      0   
  110. dirblk        92  swp used     0%                                               
  111.                                                                                 
  112.                                                                                 
  113.                                                                                 
  114. -- Var ---------  -- Bootinfo ----------   -- Tune ---------  -- Proc ---       
  115. v_autoup      10  basemem      640k        t_ageintvl      9  sleep    22       
  116. v_buf        600  extmem      6144k        t_bdflushr      1  run       1       
  117. v_clist      200  bflags   00000000        t_gpgshi       40  zombie    0       
  118. v_file       200  memory available         t_gpgslo       25  stop      0       
  119. v_hbuf        64  00000000 000a0000        t_gpgsmsk   0x420  idle      0       
  120. v_inode      200  00100000 00600000        t_maxfc         1  onproc    1       
  121. v_maxpmem      0  00f40000 00060000 NODM   t_maxsc         1  xbrk      0       
  122. v_maxup       60  memory used              t_maxumem    2560  total    24       
  123. v_mount        5  00000000 00004000 RSVD   t_minarmem     25  in mem   24       
  124. v_pbuf        20  006bb000 00037000 KBSS   t_minasmem     25                    
  125. v_proc       100  006f2000 0000e000 KDTA                                        
  126. v_region     210  00fa9000 00057000 KTXT                                        
  127. v_vhndfrac    16                                                                
  128.  
  129. The main display
  130. ================
  131.  
  132. In the description below, color references are to the
  133. default color choices.  You may customize color through
  134. the use of ~/.u386monrc and/or /usr/local/lib/u386monrc (see later).
  135.  
  136. A brief description of reported information:
  137.  
  138. 0.  The '+' and '-' command adds or subtracts one second from the
  139.     update interval.  The value at startup is 2 seconds, the
  140.     range 1 to 4.  Below, the terms "x1", "x5" and "x10" mean
  141.     "interval X 1", "interval times 5" and "interval times 10,"
  142.     respectively.
  143.  
  144.     You can determine the update interval by looking at the top
  145.     CPU histogram, labeled "Instant" for 1, "X sec" for 2-4 second
  146.     intervals.
  147.  
  148.     On some *fast* systems, values may be too large in 3 and 4
  149.     second intervals and corrupt the display.  But the, you have
  150.     the extra CPU to run it more often :-).
  151.  
  152. 1.  The CPU utilization is shown with smoothing of x1 ("instant" if
  153.     the update interval is 1 second), x5 and x10 seconds.  Total
  154.     CPU usage is shown, with user, kernel and "break" subdivided.
  155.     Most performance utilities (vmstat) lump kernel (CPU_KERNEL)
  156.     and wait (CPU_WAIT) times together as kernel time.  u386mon
  157.     considers CPU_WAIT time as idle (the CPU could have been
  158.     doing something if an otherwise ready process wasn't waited).
  159.  
  160.     On a color display, total cpu utilization is displayed in
  161.     green if the cpu utilization is below 70%, yellow if utilization
  162.     is between 70% and 89% and red if 90% or above.
  163.  
  164. 2.  The Wait display shows the x1, x5 and x10 second smoothed
  165.     percentages of real time no process could be run because
  166.     otherwise ready to run processes were waiting on logical,
  167.     swap or physical I/O.
  168.  
  169.     On a color display, total wait time is displayed in green if
  170.     it is below 30%, yellow if utilization is between 30% and 49%
  171.     and red if 50% or above.
  172.  
  173. 3.  Sysinfo/Minfo display shows, generally, the number of events
  174.     for a measured value since the last display update.  For
  175.     example, runque shows the number of times a process was
  176.     placed on the run queue.  An exception is the memory and swap
  177.     space fields: These numbers reflect absolute current
  178.     utilization over the period shown in the "last XXXXX msec"
  179.     value in the banner.  Periods of 4000 milliseconds are shown
  180.     in red, 1500 to 3990 milliseconds in blue and less than 1500
  181.     milliseconds in the normal banner color.
  182.  
  183.     My guess as to the meaning of the sysinfo and minfo values is
  184.     in the file EXPLAIN.  I am not familiar with the meanings of
  185.     all the items, having looked through the header files, sar
  186.     man pages and the other UNIX hacker-ganda I could find.
  187.     Comments are appreciated.
  188.  
  189. 4.  If you run u386mon on a 43 line display, extra information is displayed
  190.     on the bottom of the screen (from the struct var v, bootinfo
  191.     and proc kernel databases).
  192.  
  193.     On a 24/25-line screen, the 'e' command accesses the Var/Bootinfo/
  194.     Tune/Proc display, overlaying the Sysinfo/Minfo display.
  195.     Using 'm' returns you to the main display.
  196.  
  197.     Bootinfo will be missing from version running on platforms which
  198.     do not support it.
  199.  
  200. 5.  On a color display, static numeric values, such as maxmem appear
  201.     in blue (the same color as screen literals/labels).  Dynamic
  202.     numeric values are displayed in green, with the exception of
  203.     total cpu and wait percentages, which appear in light green,
  204.     red or yellow.
  205.  
  206. 6.  An "INEXACT" indication on the top line means that u386mon was
  207.     not scheduled quickly enough to capture accurate 1 second (nominal)
  208.     values.  Continued INEXACT indication suggests the x5 and x10
  209.     second smoothed values are also wrong.
  210.  
  211.     An "INVALID" indication means u386mon was scheduled 3 or more
  212.     seconds late; all percentage isplays are now suspect.
  213.  
  214. 7.  IN GENERAL, if you see any red characters on the display,
  215.     immediately take grain of salt. If you have no color screen
  216.     and still see red, add tequila to salt.
  217.  
  218. 8.  If you are running as root, you may use the -l switch or the
  219.     'l' command to lock u386mon into memory.  If you do this, PLOCK
  220.     will appear at the top of the screen to remind you of this hoggy
  221.     behavior.  The u386mon process will not be listed in a process
  222.     status display since SSYS (locked, resident) processes are not
  223.     shown.
  224.  
  225. 9.  The ISC bootinfo field will have different information due to
  226.     different porting by ISC and SCO.
  227.  
  228. Process Status Display
  229. ======================
  230.  
  231. 1.  Pressing 'p' causes a process status display of sorts to be
  232.     shown, overlaying Sysinfo/Minfo on a 25 line screen or
  233.     Var/Bootinfo/Tune/Proc on a 43 line screen.  On a 43 line screen, 'P'
  234.     causes a larger ps display to be shown, overlaying Sysinfo/Minfo and
  235.     Var/Bootinfo/Tune/Proc.
  236.  
  237.     Sample output:
  238.  
  239. S     USER   PID  CPU PRI NI  UCPU   SCPU  SIZE TTY CMD
  240. s     root    148   0  26 20   0:00   0:05  108  ?? /etc/cron
  241. s      wht  14946   2  39 20   0:02   0:11  224  05 TMR 01000a12
  242. s      wht  14947   2  39 20   0:02   0:11  220  05 TMR 01011101
  243. s      wht  14950   0  27 20   0:00   0:02  228  05 IP 01000a12
  244. s      wht  14951   1  27 20   0:00   0:02  224  05 IP 01011101
  245. s      wht  14952   0  27 20   0:01   0:02  228  05 TP4 01000a12
  246. s      wht  14953   1  27 20   0:01   0:03  224  05 TP4 01011101
  247. s      wht  14957   0  27 20   0:00   0:04  200  05 smpad.x
  248. s      wht  14960   1  27 20   0:00   0:04  204  05 mmpad.x
  249. s     root  15044   0  28 20   0:01   0:01  296  12 vi README
  250. s     uucp  15053   0  30 26   0:00   0:00  696  ?? /usr/lib/uucp/uusched
  251. s     uucp  15055   0  30 26   0:00   0:00  748  ?? UUCICO -r1 -sgatech
  252. s     uucp  15060   0  28 26   0:00   0:00  768  ?? dialTBIT tty2E 2222222UC 192
  253.  
  254.     NOTES
  255.     a.   S - two character status
  256.             1st character - process status
  257.                s - sleeping
  258.                R - ready to run (might be running if u386mon were not)
  259.                z - zombie
  260.                d - stopped by debugger
  261.                d - signal handler in progress (88k SVR32)
  262.                i - idle (in creation?)
  263.                p - running on processor (on single CPU systems, only u386mon
  264.                    will show this)
  265.                x - XBREAK - process growing or shrinking
  266.                w - waiting on Waitchan (88k SVR32)
  267.             2nd character - process swap status
  268.                S - process is swapped
  269.                blank - process is in memory
  270.  
  271.     b.  If the process is running with setuid, a '#' appears to
  272.         the right of the username.
  273.  
  274.     c.  On color systems, processes ready to run are shown in yellow
  275.         unless they are ready, but swapped out, in which case they
  276.         are shown in red.
  277.  
  278. 3.  Since a limited space is available for displaying process
  279.     status, particularly on a 25-line screen, a selective elimination
  280.     algorithm is used to whittle the list when insufficient room
  281.     is available.  init (pid 1) and system/resident (SSYS)
  282.     processes are never displayed.  When a display cycle is to begin
  283.     and there is not room for all of the processes to be shown,
  284.     processes are eliminated in the following order:
  285.  
  286.     a. 'getty', 'uugetty', 'sh', 'csh', and 'ksh'
  287.     b. swapped and zombie processes
  288.     c. no cpu processes (no cpu time during last cycle)
  289.     d. sleeping processes
  290.  
  291.     If there is still insufficient room, an indication to the effect
  292.     is displayed (tough cookies).
  293.  
  294. Disk (Winchester) display
  295. =========================
  296.  
  297. This display shows each disk and diskette device known to the system
  298. and performance statistics for each.  Currently, the information is
  299. available only on SCO systems.  The percentages will be inaccurate for
  300. one or two display cycles after the 'w' (winchester) selection
  301. becomes active.  Further updates may be inaccurate due to either
  302. noisy kernel data, data capture latency, our having to guess a
  303. lot, or any combination of the above.
  304.  
  305. STREAMS (Net) display
  306. =====================
  307.  
  308. This display shows STREAMS queues and buffers utilization a bit
  309. faster and more dynamically than /etc/crash strstat!  Currently,
  310. the information is available only on SCO systems.  It should be
  311. easy to get going for others, though.
  312.  
  313. Table Display
  314. =============
  315.  
  316. The current and maximum occupancy of various kernel tables are displayed.
  317. This may not be enabled for all systems (I couldn't test Everywhere!).
  318.  
  319. Sio display
  320. ===========
  321.  
  322. The experimental, "undocumented" sio display is a stab at tty I/O
  323. monitoring for SCO only. If you don't mind doing a bit of hacking,
  324. it can be adapted for other tty drivers whose data is an
  325. array of struct tty (see det_sio.c and ttynm.h and grep for SIO_IS_FAS
  326. to see how I have adapted it for my FAS configuration).  See also
  327. the discussion of siotools below in _How to get going_.
  328.  
  329. A $0.0002 tour: why nlsym and /unix.nlsym?
  330. ==========================================
  331.  
  332. Access to kernel (/dev/kmem) and physical (/dev/mem) memory and
  333. swap (/dev/swap) is required for u386mon to do its thing.
  334. To find kmem addresses of interest, an nlist(S) call must be made
  335. against /unix.  This can be quite expensive.
  336.  
  337. The 'nlist' procedure is performed by a separate program (nlsym)
  338. and the resulting nlist structure array is stored in /unix.nlsym.
  339. u386mon thus may obtain nlist information rapidly without nlist(S) each
  340. time it is executed.  Also stored in /unix.nlsym is a stat structure of
  341. /unix at the time of nlsym execution.  A unique word is stored at the
  342. end of the file in case /unix.nlsym's nlist structure is expanded for
  343. other applications.  The u386mon program reads /unix.nlsym by means
  344. of facilities in libnlsym.c.  If the stat structure in /unix.nlsym
  345. does not match a dynamic stat of /unix or if the unique word does
  346. not match, the nlist information is not trusted and u386mon prompts
  347. the user to run (or have run) the nlsym program to update /unix.nlsym.
  348.  
  349. Many symbols are nlist'ed by nlsym which are not used by u386mon.
  350. You may find other uses for libnlsym/libkmem which make use of them.
  351.  
  352. U386MONRC
  353. =========
  354.  
  355. For systems with color curses, a color customization feature
  356. is available through the use of ~/.u386monrc or /usr/local/lib/u386monrc.
  357.  
  358. If ~/.u386monrc cannot be found, /usr/local/lib/u386monrc is
  359. sought.  If neither can be found, the default colors are used.
  360.  
  361. There are at least eight available colors (those on the left of
  362. the table below).  The brighter versions of those eight colors
  363. are available in the hardware, but you must take actions with
  364. color curses that are beyond the scope of this work.  In the
  365. usual situation, the right hand color is accepted in lieu of the left).
  366.  
  367.     black     gray
  368.     blue      lt_blue
  369.     brown     yellow
  370.     cyan      lt_cyan
  371.     green     lt_green
  372.     magenta   lt_magenta
  373.     red       lt_red
  374.     white     hi_white
  375.  
  376. The supplied U386monrc contains definitions which match the
  377. program defaults.  It looks like:
  378.  
  379.    literal cyan
  380.    info green
  381.    reverse red white
  382.    low lt_green
  383.    medium lt_green
  384.    high red
  385.    banner black white
  386.    banwarn blue white
  387.  
  388. Literals are the labels for info fields.
  389.  
  390. Info fields are numbers or values not subject to range checking by
  391. u386mon (generally, fields not in the CPU or Wait histograms)
  392.  
  393. Reverse video fields are those u386mon wishes to bring to your
  394. attention; as of this writing, reverse is used to report a
  395. statistics cycle that took excessively longer than requested
  396. and to report a large unread input queue on a serial port
  397.  
  398. Low, medium and high are used to report values that u386mon
  399. "grades" for acceptibility. Numeric values in the histograms
  400. are painted in low, medium or high colors based on an algorithm
  401. in u386mon that is described in the README.  Histogram bars
  402. are colored as follows:
  403.  
  404.   field  CPU     Wait     default
  405.   low    user    io       green
  406.   medium kernel  pio      yellow
  407.   high   break   swap     red
  408.  
  409. Banner fields are used to separate histograms and other panels
  410.  
  411. "banwarn" is so named as an artifact that the "last xx msec activity"
  412. field is in a banner.  When this value exceeds the expected period
  413. by 500 msec, the banwarn attribute is used. (When it exceeds by
  414. 1 second, reverse is used.)
  415.  
  416. How to get going
  417. ================
  418.  
  419. 1.  Copy the appropriate Make. file to Makefile, depending on
  420.     your type of system.  It has been a while since I have had
  421.     good reports on the various OSs other than SCO UNIX, so good luck.
  422.  
  423.     Make.88k32          Motorola Delta 88k SVR3e 3.1 (good luck)
  424.     Make.dell           DELL System V (ISC derived)
  425.     Make.isc1           ISC 1.x
  426.     Make.isc2           ISC 2.x
  427.     Make.isc2.gcc       ISC 2.x with gcc (untested)
  428.     Make.s2             Tandem Integrity S2 Non-Stop UX
  429.     Make.sVr31          Various System 5 Release 3.1 (good luck)
  430.     Make.sco            SCO UNIX 3.2, 3.2.1, 3.2r2, ODT 1.x
  431.     Make.sco.gcc        same (tested with gcc 1.39 through 2.1)
  432.  
  433. 2.  Edit Makefile to change BINDIR to match your local requirements.
  434.     If you have a kernel that knows about MERGE386 as with SCO ODT,
  435.     add -DMERGE386 to CFLAGS. Likewise, if you have VPIX, add -DVPIX.
  436.     You may need to add -Dm68k for a MC68000 system if your
  437.     compiler does not (This may sound like an odd statement for a
  438.     program with 386 in the name, but we are broadening our territory :->).
  439.  
  440. 3.  make all.  Please report compile errors to me.  You shouldn't
  441.     get any on SCO 3.2.x or ISC 2.x.x for any "recent" or current versions.
  442.  
  443. 3a. Note: Don't worry, if on SCO makes, you see warnings on many modules'
  444.     compilation similar to the following:
  445.  
  446.                  cc -nointl -c -Octl -CSON -DLINT_ARGS u386mon.c
  447.         u386mon.c
  448.         /usr/include/tinfo.h(442) : warning C4005: 'box' : redefinition
  449.         /usr/include/tinfo.h(443) : warning C4005: 'newterm' : redefinition
  450.  
  451.     This is confusion on part of tinfo.h resulting from our use of
  452.     some valuable speedup macros built into tinfo.h, but not quite
  453.     kosher enough to satisfy the compiler we know what we are doing.
  454.     If it bothers you, or something breaks, remove #define CURSES_MACROS
  455.     from u386mon's config.h.  This problem does not occur with the
  456.     3.2v4 development system.
  457.  
  458. 3b. If you get undefined externs for is_linetouched and is_wintouched(),
  459.     you can try editing config.h and #define NO_ISTOUCH.  Good luck -
  460.     these are hack attempts and I have no idea if they will work.
  461.  
  462. 4.  You must run make install as root since u386mon must be setuid to
  463.     'mem' ('sys' for ISC) and nlsym must produce /unix.nlsym.
  464.     For S5R3.1 systems, all bets on "make install" are off.  I don't
  465.     know what it takes, it'll vary from system to system, and the
  466.     Make.sVr31 is only a guide.  For instance, you may want to
  467.     rename the program to u68kmon on 68000 systems :-).
  468.  
  469.     If you are a user of old u386mon versions, run the new nlsym since
  470.     the older /unix.nlsym format is not compatible with this version.
  471.  
  472. 5.  Sources are in 4-spaced tab format (please don't flame :->).
  473.  
  474. 6.  You'll need to check out config.h and your /usr/include/sys/proc.h.
  475.     If you find a p_sid element in the proc structure, then enable
  476.     #define HAVE_P_SID in config.h so that processes running under job
  477.     control will have their control ttys displayed properly. 
  478.     Thanks for the tip to rw@namu01.gwdg.de (Rainer Wittmann STAT).
  479.  
  480. 7.  usage: u386mon [-l] [-p | -P]
  481.     -l lock process into memory (if root)
  482.     -p begin with short ps display
  483.     -P begin with long ps display (if 43 line screen)
  484.     -w begin with disk (winchester) stats [SCO and S5R3.1 only]
  485.     -n begin with STREAMS (net) stats [SCO and S5R3.1 only]
  486.  
  487. 8.  If you are running SCO and get 4 as the size of most or all processes,
  488.     try adding -DUSIZE_FIXED.  SCO 3.2.0 had this info in the struct
  489.     user fields u_tsize, u_dsize, u_ssize wrong, IMHO, and fixed it
  490.     in ODT/3.2.1.  See det_proc.c for more detail.  Your port
  491.     may/WILL vary.
  492.  
  493. 9.  The renice program by Ford Ditto, from which the kmem routines
  494.     came, has been reworked and in included with this release.
  495.     It needs a current /unix.nlsym.
  496.  
  497.     usage: renice -# pid     decrease nice by #
  498.            renice +# pid     increase nice by #
  499.            renice =# pid     set nice to #
  500.  
  501.     The traditional privileges for root and non-root are supported.
  502.  
  503. 10. The libpanel.c module is not an efficient replacement for the
  504.     SVR3.2 panel facility.  It is, however, fully featured and serves
  505.     the needs of u386mon, assisting a port to SVR3.1.  It seems
  506.     efficient enough to use in lieu of native (vendor-supplied)
  507.     panels.
  508.  
  509. 11. Siotools, a package of tty and uucp monitors, was previously
  510.     released separately.  Both programs in the package have been
  511.     reorganized to use the nlsym mechanism.  It seemed reasoanble
  512.     to merge the two packages.  HoneyDanBer UUCP is required.
  513.     The package may fail on SCO 3.2v4 if files have been created
  514.     in /usr/spool/uucp/* with filenames in excess of 14 characters.
  515.     This is not likely to become a problem, but I'll fix the
  516.     hack directory search mechanism upon demand.  The method
  517.     I use currently is very quick.  Refer to the README in the
  518.     siotools subdirectory for more information.
  519.  
  520. Comments are appreciated, especially bug fixes and information
  521. helping to port the program to another 386 SVR3 system.
  522.  
  523. Warren Tucker - n4hgf!wht -or- wht@n4hgf.Mt-Park.GA.US
  524.  
  525. Thanks for various reasons to (alphabetically):
  526.  
  527. aaron@odt.icom.com
  528. alan@cms2
  529. allbery@ncoast.org
  530. andy@rbdc
  531. annie@axis-design.axis-design.fr (Annie Tanguy)
  532. bel@trout.nosc.mil
  533. bobti@sco.com
  534. davidg@aegis.or.jp
  535. davidgu@sco.com
  536. davis@csrg2.ee.iastate.edu (Jim Davis)
  537. dionj@sco.com (Dion Johnson)  [triple plus thanks!!]
  538. dynsim1.litwin.com!avg (Anil Gokhale)
  539. eao@mvucl.att.com
  540. elsn4000@w107zrz.zrz.tu-berlin.dbp.de
  541. focsys!larry
  542. fredj@wang.com (Fred Jewell)
  543. gregf@sco.com (Greg Forrest)
  544. howardl@wb3ffv.ampr.org
  545. jdc@dell.com (Jeremy Chatfield)
  546. jdm1@eds1.eds.com (Jonathan D. McCown)
  547. jennen@aball.in-berlin.de (Andreas Jennen)
  548. jimmy@denwa.info.com (Jim Gottlieb)
  549. jonl@sco.com
  550. jpradley.jpr.com!root (J-P Radley )
  551. kariy@vataks71.vat-vai.valmet.com
  552. kd4nc!dug
  553. kent@sparky.IMD.Sterling.COM (Kent Landfield)
  554. larry@focsys
  555. lele@idea.sublink.org
  556. marlor@cup.portal.com
  557. martin@hppcmart.grenoble.hp.com
  558. mpd@anomaly.sbs.com
  559. nba@sysware.dk
  560. pat@rwing (Pat Myrto)
  561. petej@ssg2.pharmacia.com (Peter M. Jansson)
  562. peter@radig.de
  563. pgd@bbt.se
  564. randy@chinet.chi.il
  565. rexago8!hc05 (Beirne Konarski)
  566. rll@sco.com (Robert Lewis)
  567. robertt@sco.com
  568. root@candle.uucp (Bruce Momjian)
  569. root@dinosaur.lonestar.org
  570. rtf.bt.co.uk!traub
  571. rw@namu01.gwdg.de (Rainer Wittmann STAT)
  572. soward@ms.uky.edu
  573. ssb@cs.umn.edu!quest
  574. steen@kiku.dk
  575. steen@kiku.dk (Steen Hammerum)
  576. stevea@i88.isc.com (Steve Alexander)
  577. sunriv!johnc
  578. sysware.sysware.dk!nba (Niels Baggesen)
  579. tore@kiku.dk
  580. trb@ima.ima.isc.com (Andrew Tannenbaum)
  581. wgs6386!budp
  582. xenicon!steveh
  583.